home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / BORL_TIP / TI100 / TI204.ASC < prev    next >
Text File  |  1991-09-11  |  2KB  |  67 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.   PRODUCT : TURBO PASCAL                               NUMBER : 204
  10.   VERSION : 2.0xx
  11.        OS : PC-DOS, MS-DOS
  12.      DATE : April 1, 1986                                PAGE : 1/2
  13.     TITLE : RANDOM NUMBER SEED LOCATIONS
  14.  
  15.  
  16.  
  17.  
  18.   Turbo Pascal maintains a four byte random number seed. There is
  19.   a Randomize procedure to give that seed a random value which the
  20.   function, Random, then uses to generate random values within a
  21.   specified range.
  22.  
  23.   Random :  r := seed;
  24.  
  25.   The function Random(value) calls the following routine:
  26.  
  27.   function Random(N_Max): real;
  28.   var c1, c2, r : real;
  29.   begin
  30.     c1 := exp(32 * ln(2));
  31.     c2 := exp(16 * ln(2));
  32.     r  := (r * 129 * $361962E9) mod c1;
  33.     Random := r div c2 mod N_Max;
  34.   end;
  35.  
  36.   The following table gives the random number seed address for most
  37.   Turbo Pascal implementations:
  38.  
  39.   Random Number Seed Locations
  40.  
  41.     IBM TURBO.COM               0129
  42.     IBM TURBO-87.COM            0116
  43.     Generic TURBO.COM           0129
  44.     Generic TURBO-87.COM        0116
  45.  
  46.   The seed may be declared as:
  47.  
  48.     Var RandomSeed: Array [0..3] Of Byte Absolute DSeg:$0129;
  49.  
  50.   or:
  51.  
  52.     Var   RandomSeed: Array [0..1] Of Integer Absolute DSeg:$0129;
  53.  
  54.   By replacing the value in the address, you can seed the random  number
  55.   generator in any way you like: read it from a file; read a  number
  56.   from the user; ask for the user to hit a key, and count  until he
  57.   does; get the system time; or, assign a constant value.  Using
  58.   constant values is useful in making statistical simulations  uniform.
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.